﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace GN.Pay.Client.Notify
{
    /// <summary>
    /// 转账通知消息
    /// </summary>
    public class TransfersNotifyMessage : NotifyMessage
    {
        /// <summary>
        /// 实例化 TransfersNotifyMessage 类新实例
        /// </summary>
        /// <param name="notifyMessages"></param>
        /// <param name="payConfigure"></param>
        public TransfersNotifyMessage(IDictionary<string, string> notifyMessages,
            IPayConfigure payConfigure) : base(notifyMessages, payConfigure)
        {
        }

        /// <summary>
        /// 是否成功
        /// </summary>
        public bool Success { get; set; }

        /// <summary>
        /// 状态消息
        /// </summary>
        public string StateMessage { get; set; }

        /// <summary>
        /// 交易号
        /// </summary>
        public string TradeNo { get; set; }

        /// <summary>
        /// 申请编号
        /// </summary>
        public string ApplyNo { get; set; }

        /// <summary>
        /// 申请时间
        /// </summary>
        public DateTime ApplyTime { get; set; }

        /// <summary>
        /// 账本时间
        /// </summary>
        public DateTime BookTime { get; set; }

        /// <summary>
        /// 通道交易号
        /// </summary>
        public string ChannelTradeNo { get; set; }

        /// <summary>
        /// 申请金额
        /// </summary>
        public decimal ApplyMoney { get; set; }

        /// <summary>
        /// 转账金额
        /// </summary>
        public decimal TransfersMoney { get; set; }

        /// <summary>
        /// 转账费用
        /// </summary>
        public decimal TransfersFee { get; set; }

        /// <summary>
        /// 转账时间
        /// </summary>
        public DateTime TransfersTime { get; set; }

        /// <summary>
        /// 账号
        /// </summary>
        public string AccountNo { get; set; }

        /// <summary>
        /// 收款人户名或真实姓名
        /// </summary>
        public string AccountName { get; set; }

        /// <summary>
        /// 收款人银行代码
        /// </summary>
        public string BankNo { get; set; }

        /// <summary>
        /// 开户行名称
        /// </summary>
        public string OpenBankName { get; set; }

        /// <summary>
        /// 省市
        /// </summary>
        public string ProvinceCity { get; set; }

        /// <summary>
        /// 摘要
        /// </summary>
        public string Summary { get; set; }

        /// <summary>
        /// 客户端Ip
        /// </summary>
        public string ClientIp { get; set; }

        /// <summary>
        /// 扩展参数
        /// </summary>
        public string ExtraParam { get; set; }
    }
}
